TYPE type_name = type;
An alias is made of an existing type. The type "type_name" has the same structure as the type "type".
Example:
TYPE StringType "The type of a string" = String;
TYPE type_name = ENUM {id_1, id_2, ...,id_n};
An enumerated type is a user-defined type consisting of a set of unique identifiers called enumerators.
Example:
TYPE Boolean "Built-in: Logic type" = ENUM {True, False};
TYPE type_name = RECORD { record_element_1 : type_1; ... record_element_n : type_n; };
A record type is defined as a set (collection) of different record elements. All the elements in a record are generally related to each other logically.
Example:
TYPE IntervalType "Type specifying an interval " = RECORD { LowerBound: Real; UpperBound: Real; }
TYPE type_name = type[dimension;];For a column vector
TYPE type_name = type[dimension,];For a row vector
A vector type is used to specify vectors and matrices. A matrix can be specified as a vector of vectors.
Example:
TYPE Column "Example of a column vector type" = Real[4;];This is a column vector of 4 elements, each element is of type Real.
TYPE Row "Example of a row vector type" = Real[4,];This is a row vector of 4 elements, each element is of type Real.
TYPE Matrix "Example of a matrix type" = Real[4;][3;];This is a matrix of 4 rows and 3 columns, each element is of type Real.
TYPE powerset_type = SET_OF(type);
Example:
TYPE Equations "Example of a powerset type" = SET_OF(EquationType);Equations is defined as set in which each set element is of type "EquationType".
TYPE union_type = UNION(type_1, type_2, type_3, ..., type_n);
In a union type different "overlapping" types are defined. When this type is used to declare variables, the actual type of the variable can be one of the different types "type_1", "type_2",.. This is determined at run-time.
Example:
TYPE union_type "Example of a union type" = UNION(Integer, Real);